منبع این آموزش سایت
www.aryapdf.com و
www.shabakeh-mag.com
برنامه نویسی آندروئيد (قسمت اول)
مقدمات برنامهنویسی برای سیستمعامل آندروئيد
کیومرث سلطانی
اشاره:
آندروئید به عنوان یکی از سیستمعاملهای پرطرفدار موبایل که بخش وسيعي از کد آن نیز با مجوزهای نرمافزارهای آزاد ارائه شده است، در میان برنامهنویسان جامعه آزاد جايگاه ویژهای دارد. هر چند میزان پذیرش این سیستم عامل در مقایسه با رقبايی مانند iOS اپل همچنان از سطح پایینتری برخوردار است، اما گوگل و دوستداران آندروئيد امید دارند تا با همکاری جامعه اپنسورس این سیستم عامل بتواند وضعیت بهتری را در بازار داغ سیستمعاملهای موبایل پیدا کند.
سیستمعاملهایی که امروزه طرفداران فراوانی دارند و البته استفاده از آنها به دستگاههای الکترونیکی دیگر نیز گسترش ميیابد. شاید در سطحی بالاتر حتی بتوانیم منتظر کامپيوترلوحي گوگل با سیستمعامل آندروئيد باشیم و این خیلی دور از انتظار نيست. هنگامي که اپل ميتواند این کار را به خوبی انجام دهد، چرا گوگل نتواند آن را ادامه دهد؟ در ادامه به معرفی مقدماتی برنامهنویسی برای سیستمعامل آندروئيد ميپردازیم.
مقدمه
امروزه، برنامهنویسی برای دستگاههای موبایل به سطحی از پیشرفت دست یافته که شاید تا پنج یا شش سال پیش برای کمتر کسی قابل پیشبینی بود. هم اکنون هر شخصي با مهارتهاي اوليه برنامه نويسي قادر است به راحتی و با نصب یک كيت توسعه نرم افزار يا SDK مخصوص و استفاده از IDE مرتبط، به راحتی و در عرض زمان کوتاهی برنامههای جالبی برای گوشی خود بنویسد.
علاوه بر پیشرفتهای انجامشده در زمینه فنی، از نقطه نظر کسبوکار نیز این برنامهها به عنوان رکن جدیدی برای فعالیت شرکتهای نرمافزاری مطرح شدهاند. به عنوان شاهدی بر جنبههای مالی این برنامههاي خیلی ساده کافی است تا تنها به چند نمونه از داستانهایی که بهطور روزمره درباره میلیونرهای مکتب App Store منتشر میشوند، نگاهی بیاندازیم.
اما چه چیزی این پلتفرمها را تا این اندازه محبوب ميسازد؟ در ابتدا باید به این نکته اشاره كرد که امروز گوشی همراه رکن جدا نشدنی زندگی هر فرد است. ما نه تنها این گوشیها را همواره و در هر موقعیتی در کنار خود نگه میداریم، بلکه سعی داریم تا بخشی از کارهای روزمره خود را نیز به آنها واگذار کرده یا در انجام آنها از این برنامهها کمک بخواهیم. از سوی دیگر، سادهشدن روند توسعه برنامه برای این گوشیها و وجود كيتهاي توسعه قدرتمندی که به شما اجازه میدهند تا با نوشتن چند خط کد یک توانایی جالب را به برنامه خود اضافه کنيد نیز در این مقبولیت بیتأثیر نبوده است. در پایان نیز باید به بحث شیرین جنبههای مالی و البته بکر بودن نسبی بازار نسبت به نرمافزارهای دیگر اشاره کرد.
آندروئيد با بهرهگیری از خصوصیات مفید پلتفرمهای دیگر و البته استفاده گسترده از فلسفه اپنسورس در توسعه سیستم عامل خود توانسته توجه بسیاری از توسعهگران را به خود جلب کند. البته، همان طور که ذکر شد محبوبیت گوشیهای آيفون و برنامهنویسی برای آنها کاملاً سیستمهای دیگر را تحتالشعاع قرار داده، در اين ميان آندروئيد نیز در این بازار بیطرفدار باقي نمانده است. برای شروع برنامهنویسی آندروئيد باید دو مرحله ابتدایی را پشت سر بگذارید. یعنی نصب SDK و انجام تنظیمات مربوطه و نصب ابزار توسعه مخصوص Eclipse. البته، مرحله دوم کاملاً اختیاری است و درواقع شما بدون Eclipse نیز میتوانید برای آندروئيد برنامه بنویسید، اما به هر صورت، با استفاده از این ابزار کار توسعه شما بسیار سادهتر ميشود. به صورت پیشفرض شما تنها ميتوانید به وسیله جاوا برای آندروئيد برنامه بنویسید. اما با استفاده از تکنیکهای نوشتن کد Native زبانهای دیگر در دل جاوا، تقریباً استفاده از هر زبان دیگری نیز ممکن است. این موضوعی است که در بخشهاي ديگر مقاله به آن خواهیم پرداخت. یعنی نوشتن کد به زبانهای برنامهنویسی دیگر از جمله C برای آندروئيد. اين مقاله ابتدا نصب و تنظیم مقدماتی را برای شروع برنامه نویسی آندروئيد بیان میکند. در انتها نیز طبق یک عادت زرد یک برنامه Hello World با آندروئيد را معرفي خواهیم کرد. سیستمعاملی که ما کارهایمان را روي آن توضیح خواهیم داد نیز اوبونتو 9/10 است. هرچند که شیوه کار برای بقیه سیستمهای لینوکسی نیز کاملاً مشابه و برای سیستمعاملهای دیگر مانند ویندوز نیز تا حد زیادی مشترک است. همچنين برای نصب آندروئيد لازم است jdk جاوا نیز از قبل روی سیستم موجود باشد.
تنظیمات مرتبط با جاوا
قبل از انجام هر کاری بايد از عملکرد درست جاواي نصبشده روی سیستم خود مطمئن شويد. گروه توسعه آندروئيد توصیه میکند از جاوای نسخه شش استفاده کنيد. البته، با استفاده از جاواي پنج نباید مشکل چندانی داشته باشید، اما به هر حال، برای اطمینان بهتر است از نسخه شش استفاده کنید. اما یکی از مهمترین موارد برای استفادهکنندگان سیستمعامل لینوکس این است که باید مطمئن شوند جاوای نصب شده روی سیستم آنها جاوای استاندارد خود شركت سان است؛ نه جاوای gnu. برای این کار ميتوانید به اين روش عمل کنید: ابتدا جاواي شش را دانلود کرده، سپس با استفاده از دستور زیر سیستم را برای استفاده از جاواي شش به روز کنيد:
sudo update-java-alternatives -s java-6-sun
سپس میتوانید برای داخل Eclipse نیز تنظیمات مورد نیاز را اعمال کنيد. به Window>Preferences>Java>Compiler رفته و نسخه مورد نظر کامپایلر خود را تنظیم کنيد. سپس در همان زبانه جاوا به Installed JRE رفته و در صورت لزوم آن را نیز با JRE حال حاضرتان تغییر دهید. هماکنون سیستم شما آماده استفاده از جاوا شش است. درصورت نیاز به نوشتن برنامهها بدون Eclipse میتوانید این تغییرات را بهصورت دستی نیز اعمال کنید. برای اطلاعات بیشتر به مستندات موجود روی وب مراجعه کنيد.
نصب مقدماتی
همان طور که ذکر شده در ابتدا باید SDK مربوط به اين كار را برای آندروئيد از سایت این پروژه دانلود کنيد. آخرین نسخه این SDK در حال حاضر 1/2 است که در ژانویه ۲۰۱۰ عرضه شد. برای دانلود این SDK خیلی ساده به آدرس اينترنتي
http://developer.android.com/sdk/index.html مراجعه کرده و با توجه به سیستمعامل مورد استفاده خود كيت توسعه مناسب را دانلود کنيد. پس از انجام این کار شما یک فایل زیپ در اختیار خواهید داشت آن را Extract کرده و در مکان مورد علاقه خود نگهداري کنيد. به اين ترتيب SDK مورد نظر شما آماده بهرهبرداری است.
البته، قبل از اتمام این مراحل باید یک کار کوتاه دیگر نیز انجام شود و آن اضافهکردن آدرس SDK به path سیستمعامل است. برای انجام این کار در اوبونتو ميتوانید به صورت زیر عمل کنید:
gedit ~/.bashrc
پس از باز شدن پنجره مربوطه خط زیر را در فایل اضافه کنيد:
export PATH=$PATH:/YOURSDKADDRESS/
android-sdk-linux_86/tools/
درواقع باید به جای YOURSDKADDRESS آدرسی را که كيت توسعه را در آنجا ذخیره کردهاید، قرار دهید. سپس دستور زیر را در Command-line اجرا کنيد:
source ~/.bashrc
استفاده از این دستور باعث ميشود تا اوبونتو فایل Bashrc را Reload کند و تغییرات اعمال شود. اکنون SDK شما آماده بهرهبرداری است.
شكل 1- صفحه دانلود SDK آندروئيد
ساخت یک AVD
برای ساخت یک AVD (سرنام Android Virtual Device) باید به دایرکتوری SDK رفته، سپس وارد پوشه Tools شده و آندروئيد را اجرا کنيد. با ظاهر شدن پنجره AVD Manager ابتدا به Settings رفته و مطمئن شوید که گزینه ...//:Force https انتخاب شده باشد، سپس روی Save & Apply کلیک کنيد.
شكل 3- تنظیم Settings درAVD Manager
شكل 4- ساخت یک دستگاه مجازی جدید
اکنون به بخش Installed Packages بروید و روی Update All کلیک کنيد. پس از ظاهر شدن بستههای مورد نظر Install Accepted را انتخاب کنيد و منتظر بمانید تا بستهها نصب شوند. در ادامه یک Virtual Device جدید بسازید. برای این کار به بخش Virtual Devices بروید و روی New کلیک کنيد. حال باید نام دستگاه مجازی، Target آن، اندازه حافظه SD Card و سختافزاری را که ميخواهید Emulator روی آن اجرا شود، انتخاب کنيد.
در ادامه Create AVD را کلیک کنید و منتظر شوید. در پایان پنجرهای نمایش داده میشود که شامل اطلاعات وارد شده توسط شما است. گزينه Start و Launch را انتخاب کرده و منتظر شوید تا آندروئيد به صورت مجازی بوت شود .
شكل 5- شبيهساز: آندروئيد پس از بوت شدن
نصب پلاگین مربوط به eclipse
همانطور که در ابتدای مقاله نیز ذکر شد، این مرحله اختیاری است و نيازي نيست این پلاگین نصب شود، اما در هر حال با انجام این تنظیمات کار با آندروئيد بسیار آسانتر میشود. برای دریافت این پلاگین که ADT (سرنام Android Development Kit) نامیده میشود، به دو روش ميتوانید اقدام کنيد؛ یکی دریافت مستقیم توسط خود Eclipse و دیگری دانلود آن و سپس بارگذاری آن در Eclipse. در ادامه هر دو روش را خیلی سریع بیان ميکنیم.
روش اول، دانلود مستقیم از طریق Eclipse: برای این کار Eclipse را باز کرده و به منوی Help>Install New Software بروید و روی Add کلیک کنید، حال باید در مکان Location آدرس زیر را وارد کنيد:
https://dl-ssl.google.com/android/eclipse
اگر برای وصل شدن به این آدرس مشکل داشتید، از http معمول استفاده کنید، نه 0000 http. یعنی در مکان Location این آدرس را بزنید:
http://dl-ssl.google.com/android/eclipse
قسمت Name را نیز خالی بگذارید و OK را بزنید. سپس فایلهای مرتبط نمایش داده ميشوند آنها را انتخاب کرده و با انتخاب گزينه Next نصب را ادامه دهید. در پایان این مرحله ADT روی Eclipse شما نصب شده و Eclipse یکبار Restart ميشود.
نکته: در صورتی که به دلیل محدودیت اعمال شده توسط code.google بـــرای دسترســــی بــه آن مشــکـل داشتیــد، ميتوانیــد ازWindow>Preferences>General>Network Connections در خــــود Eclipse برای تنظیم پراکسی خود استفاده کنيد.
شكل 6- دانلود کردن ADT
شكل 7- انتخاب پلاگینها برای نصب
روش دوم، دانلود و بارگذاری: در این روش ابتدا باید فایل مربوطه را از سایت گوگل دریافت کنید، سپس آن را روی Eclipse خود نصب کنيد. برای دریافت فایل ميتوانید از آدرس
http://dl-ssl.google.com/android/ADT-0.9.5.zip استفاده کنيد. پس از دریافت فایل دوباره در داخل Eclipse به Help>Install New Software رفته و Add را بزنید. در ادامه روی Archive کلیک کرده و فایل دانلود شده در بالا را انتخاب کنيد. بقیه مراحل نصب مانند گذشته است. پس از انجام مرحله دانلود و نصب به یکی از دو روش ذکر شده در بالا باید آدرس SDK را در درون Eclipse یز وارد کنيد. برای این کار به Window>Preferences رفته و روی Tab آندروئيد کلیک کنيد. در ادامه مکان قرارگیری SDK خود را از طریق Browse انتخاب کرده و OK را بزنید. موفق شديد، آندروئيد شما نصب شد.
شكل 8- مشخص کردن آدرس SDK
نوشتن یک برنامه Hello World
در ادامه در مدت بسیار کوتاهی نخستين برنامه آندروئيد خود را خواهید نوشت. برای این کار کافی است کارهای زیر را نجام دهید:
۱- وارد Eclipse شده و به File>New>Android Project بروید.
۲- در کادر ظاهر شده نام پروژه، برنامه، پکیج و Activity را به دلخواه وارد کنيد. Activity ها چیزی مانند Frame/Window در کیتهای GUI هستند که در برگیرنده تمام منطقه قابل ترسیم صفحه نمایش است.
۳- در ادامه کلید Finish را بزنید. پروژه شما هم اکنون ساخته شده است.
۴- از نوار سمت راست وارد پروژه شده و با کلیک روی src و سپس وارد شدن به پکیج مورد نظرتان فایل java. خود را باز کنيد.
۵- کد نمایش داده شده باید شبیه کد زیر باشد:
package shabakeh.example;
import android.app.Activity;
import android.os.Bundle;
public class Hello_Android_World extends Activity ..
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) ..
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
توجه داشته باشید که کلاس از Activity مشتق شده است. یکActivity موجودیت منفردی در برنامه است که برای انجام کاری ساخته شده، یک برنامه ممکن استActivity های مختلفی داشته باشد، اما کاربر ميتواند در هر زمان تنها با یکی از آنها تعامل داشتهباشد.onCreate هنگاميکه یک Activity شروع به کار ميکند، فراخوانده ميشود. حال بیاید کميکد را تغییر دهیم :
package shabakeh.example;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Hello_Android_World extends Activity ..
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) ..
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
رابط کاربری آندروئيد از اشیاي سلسله مراتبی تشکیل شده که View نامیده ميشوند View یک شیء ترسیمي را به عنوان الماني از رابط کاربری برای ما ایجاد ميکند. این شیء ميتواند یک دکمه، تصویر یا حتی یک برچسب متنی باشد. هر کدام از اینها یک زیر کلاس View است. در اینجا ما از زیر کلاس TextView استفاده کردهایم. در مرحله بعد ما باید برای فراخوانی سازنده TextView یک نمونه از Context را برای آن به عنوان پارامتر ارسال کنيم. Context یک کمک برای سیستم محسوب ميشود به نحوی که سرویسهایی مانند تشخیص و تخصیص منابع و اخذ دسترسی به پایگاههای داده را انجامميدهد. از آنجا که Activity از Context ارثبردهاست و کلاس Hello_Android_World نیز زیر کلاس Activity است، پس ميتوانیم this را به عنوان پارامتر در سازنده TextView قرار دهیم. زیرا به نوعی this ما زیر کلاس Context محسوب شده و ميتواند به جای آن ارسال شود. مرحله بعدی روش SetText است که متن را Set ميکند. در پايان نیز شما باید TextView را به SetContentView بفرستید تا بتوانيد محتوای Activity رابط کاربری را نمایش دهد. اگر این کار صورت نگیرد شما فقط یک صفحه خالی خواهید دید.
شكل 9- ساختن یک پروژه جدید در Eclipse
برای اجرای برنامه مراحل زير را انجام دهيد:
۱-Run>Run را انتخاب کنيد.
۲- از میان حالتهای موجود Android Application را انتخاب کنيد.
۳- و این است برنامه Hello World آندروئيدی شما
در مقالههاي بعدی کدنویسی را برای آندروئيد عمیقتر مورد بررسی قرار ميدهیم.